Orchestration enables users to create new applications (typically business processes) from pre-existing applications (typically web services) that execute on different computers that are interconnected by a network, such as the Internet. A description of such a business process (that performs orchestration) may be expressed in an industry-standard language, such as WS-BPEL (Web Services Business Process Execution Language), formerly called BPEL4WS or BPEL. BPEL is being standardized by OASIS (Organization for the Advancement of Structured Information Standards) of Billerica, Mass., USA.
Visual tools to assist users in orchestration display a graphical user interface (GUI) wherein users can drag and drop certain shapes to represent pre-existing applications, and interconnect them. Use of such a tool eliminates the need for users to write software in BPEL. Visual tools that generate BPEL-compliant software include Oracle's BPEL-PM (BPEL Process Manager) 2.0, IBM's WBISF (WebSphere Business Integration Server Foundation) 5.1, Microsoft's BizTalk Server 2004, and SAP's NetWeaver.
A “business activity monitoring” (BAM) process collects data from multiple computers that are processing credit card applications, and displays the data in a user interface called a dashboard. The data may be obtained via a BAMInterceptor class of the type available in Microsoft's BizTalk Server 2002. Microsoft's BAMInterceptor class allows the application to be instrumented in a generic way, so that verbosity and content can be controlled via configuration. For more information, see the URL obtained by replacing $ with ‘/’ in the following: hftp:$$msdn.microsoft.com$library$default.asp?url=$library$en-us$sdk$htm$frlrfmicrosoftbiztalkbameventobservationbaminterceptorclass topic.asp
Microsoft describes use of BAM Interceptor as follows (“you” is the user). In each step of your application where you could have data of interest, you call Interceptor OnStep, provide an identifier for the step, and provide some data or arbitrary object that you are using in your application. You must implement a callback function so when the callback occurs, your callback procedure gets the current step ID and your data object . . . . Microsoft's BAM interceptor decides which data to request at each step, based on a configuration that you can create programmatically. . . . After you create an interceptor instance, you can store it for later use at runtime. You may keep different pre-created interceptors representing different preferences for the data and milestones for BAM. The BizTalk Orchestration Engine accommodates interception, which allows changing what data is collected for BAM at runtime using the Tracking Profile Editor.
Note that Microsoft's BizTalk appears to requires its users (i.e. process designers) to manually modify their source code (i.e. edit software) for a business process to add the BAM interceptor, and to redeploy such a modified process. Microsoft also appears to require its process designers to manually program a callback procedure which must receive and process a current step ID and a data object from the modified process.
US Patent Publication 2003/0225769 filed by Chkodrov et al. on May 31, 2002 as application Ser. No. 10/157,968, assigned to Microsoft and entitled “Support for real-time queries concerning current state, data and history of a process” is incorporated by reference herein in its entirety. This publication describes defining interesting portions of a workflow of a business or other type of process. Using a tracking profile editor, a portion of a given workflow is selected and associated with a named process part. A profile is generated based on the given workflow and selected items of payload data. The output of the tracking profile editor may be saved, for example, as an XML file. A tracking profile compiler receives the created tracking profile and generates a star schema, a flattened view and OLAP cube based on the tracking profile. Note that Chkodrov's Tracking Profile appears to be limited to BAM.
US Patent Publication 2003/0225769 states that an interceptor receives each event or payload data of interest, checks the interceptor configuration to determine whether the event is an event of interest or whether the payload data is payload data of interest, and if so, serializes the event or payload data, along with a timestamp, into a tracking stream. A tracking service extracts information pertaining to the monitored events from the tracking stream and stores the information in a queryable database. The tracking service continually monitors the tracking stream and processes events, calling a proper stored procedure to store information pertaining to events in the database. Alternatively, each event may have a specific event number and a hash table may be accessed using the event number to select an address of a stored procedure to execute.
The above-described US Patent Publication 2003/0225769 refers to US Patent Publication 2003/0225820 which was also filed by Chkodrov et al. on May 31, 2002 as application Ser. No. 10/160,844 entitled “System and method for collecting and storing event data from distributed transactional applications” which is also incorporated by reference herein in its entirety. For background on related technologies, see US Patent Publication 2004/0176968 by Syed, et al. on Mar. 7, 2003 and entitled “Systems and methods for dynamically configuring business processes” also incorporated by reference herein in its entirety.
For more background, see US Patent Publication 2005/0049924 by DeBettencourt et al. filed on Aug. 27, 2003 and entitled “Techniques for use with application monitoring to obtain transaction data”; See also US Patent Publication 2005/0071243 by Somasekaran et al. filed on Sep. 30, 2003 and entitled “Non-disruptive business process debugging and analysis”; see also US Patent Publication 2003/0115334 by Bhat et al. entitled “Business transaction monitoring system and method” filed Nov. 4, 2002; see also US Patent Publication 2002/0038228 by Waldorf et al. entitled “Systems and methods for analyzing business processes” filed Mar. 28, 2001; all of the just-described patent publications (in this paragraph) are incorporated by reference herein in their entirety.